SandTigerSandTiger is an auto-counting tool that counts naturally occurring events in a price series. This version has been reduced to 377 lines of code and should run faster than previous versions. Although not shown here, I highly recommend running my 'ELB' script with SandTiger. ELB is an 'event locator' and will mark all points that SandTiger numbers - giving you visual cues as to where these points are located. ELB also displays support/resistance levels.
SandTiger is designed to be used with MAGENTA - a counting system for Forex and other markets.
MAGENTA is a free and open framework for understanding and explaining price movement in financial markets. Any materials associated with MAGENTA are strictly for educational purposes only.
SandTiger tracks Component Values, Dyads, and Sum Table Values (STV's) over straight and curved trends, allowing a trader to discern where directional shifts are likely to occur.
SandTiger requires just 3 things to function accurately:
1) A correct starting point (this will typically be an obvious trend turn high or low in a series of price moves).
2) A 'push 1' count ('push 1' runs from the starting point to the event prior to the first terminal of the first FCT or Fractured Counter-Trend).
3) A 'high prime' value (the high prime count runs from the starting point through to the second terminal of the first FCT with no skips).
FRAMEWORK OVERVIEW: 'Component' values are filtered from the prime set (including the half prime and further reductions). Once we have the comp table we add the values to get a 'total'. With the 'total' we divide and multiply by two to get two additional values. 'Derivatives' are based on various calculations using these three values.
We're looking for 'total/2' to count into either itself, 'total', 'total*2', or a derivative. Comp counts are in Tx form and counted from trend start. If the trend doesn't turn on a comp value it will likely turn on a Dyad or STV value. If that also doesn't happen it's likely you have a 'curved' trend/sequence that will turn on one of the above after moving away from its high/low. This can also be traded using SandTiger's 'Seg Terminals' skip option.
Sum tables and Dyad values are drawn from the 'primes' and Dyads use the 'push1' value as well. In a structural trend, primes are gotten by counting pushpulls 1 & 2 in 'Ti' form. Comps, Sum table values, and Dyads are equivalent, sequences can turn on either value type belonging to the 1st or 2nd prime set. Both STV's and Dyads are counted in 'Tx' form (except where count-through signals occur).
Types and antitypes correlate and are associated with a 12-count 'cycle.' (Ti = 'Terminals Included'; Tx = 'Terminals eXcluded'; both refer to FCT terminals)
THE STRATEGY:
For Structures: Trade Comps, Dyads, and STV's from sets 1 (all) and 2 (Dyads and STV's only) in the 'main' segment then on the 'carry-over' by skipping segment terminals. If a PC or cycle caps the sequence, trade that as well.
For NSM's: Trade movements that flash a signal prior to the end of the initial cycle. The mark will be the push1 value. Twelve will be the 'high prime.' Skip interrupts and trade carry-over values.
The first version of SandTiger was conceived/planned/authored by Erek A.D. and coded by Erek A.D. and @SimpleCryptoLife beginning in August 2022 and finishing in Dec. 2022
The current version was written and developed July 3, 2023 and has been refined and upgraded by Erek A.D. through Jan. 2024...
Cerca negli script per " TABLE"
3x MTF MACD v3.0MACD's on 3 different Time Frames
Indicator Information
- Each Time Frame shows start of Trend and end of trend of the MACD vs the Signal Cross
- They are labled 1,2,3 with respective up or down triangle for possible direction.
User Inputs
- configure the indicator by specifying various inputs. These inputs include colors for bullish
and bearish conditions, the time frame to use, whether to show a Simple Moving Average
(SMA) line, and other parameters.
- Users can choose time frames for analysis (like 30 minutes, 1 hour, etc.)
but they must be in mintues.
- The code also allows users to customize how the indicator looks on the chart by providing
options for position and color.
Main Calculations
- The script calculates the Simple Moving Average (SMA) based on the user-defined time
frame.
- It then determines the color of the plot (line) based on certain conditions, such as whether
the SMA is rising or falling. These conditions help users quickly identify market trends.
Label Creation
- The code creates labels that can be displayed on the chart.
These labels indicate whether there's a bullish or bearish signal.
Level Detection
- The script determines and labels key levels or points of interest in the chart based on
certain conditions.
- It can show labels like "①" and "▲" for bullish conditions and "▼" for bearish conditions.
Table Display
- There's an option to show a table on the chart that displays information about the MACD
indicator Chosen and the NUmber Bubble assocated with that time frame
- The table can include information like which time frame is being analyzed, whether the SMA
line is shown, and other relevant data.
Plotting on the Chart
- The script plots the Simple Moving Average (SMA) on the chart. The color of this line
changes based on the calculated trend conditions.
ATR (Average True Range)
- The script also plots the Average True Range (ATR) on the chart. ATR is used to measure
market volatility.
"In essence, this script is a highly customizable MACD and SMA indicator for traders. It assists traders in comprehending market trends, offering insights into different MACD cycles concerning various timeframes.
Users can configure it to match their trading strategies, and it presents information in a user-friendly manner with colors, labels, and tables.
This simplifies market analysis, allowing traders to make more informed decisions without the distraction of multiple indicators."
Smart Money Breakouts [ChartPrime]The " Smart Money Breakouts " indicator is designed to identify breakouts based on changes in character (CHOCH) or breaks of structure (BOS) patterns, facilitating automated trading with user-defined Take Profit (TP) level.
the indicator incorporates essential elements such as volume analysis and a data table to assist traders in optimizing their strategies.
🔸 Breakout Detection:
The indicator scans price movements for "Change in Character" (CHOCH) and "Break of Structure" (BOS) patterns, signaling potential breakout opportunities in the market.
🔸User-Defined TP :
Traders can customize the Take Profit (TP) through the indicator settings, with these levels dynamically calculated based on the Average True Range (ATR). This allows for precise risk management and profit targets that adapt to market volatility.
🔸 Volume Analysis and Trade Direction Specific Analysis:
The indicator includes a volume checker that provides valuable insights into the strength of the breakout, taking into account trade direction.
🔸If the volume label is red and the trade is long, it suggests a higher likelihood of hitting the Stop Loss (SL).
🔸If the volume label is green and the trade is long, it indicates a higher probability of hitting the Take Profit (TP).
🔸For short trades, a red volume label suggests a higher likelihood of hitting TP, while a green label suggests a higher likelihood of hitting SL.
🔸A yellow volume label suggests that the volume is inconclusive, neither favoring bullish nor bearish movements.
🔸Data Table:
The indicator features a data table that keeps track of the number of winning and losing trades for specific timeframes or configurations.
This table serves as a valuable tool for traders to analyze performance and discover optimal settings and timeframes.
The "Smart Money Breakouts" indicator provides traders with a comprehensive solution for breakout trading, combining technical analysis of changes in character and breaks of structure, volume insights, and performance tracking while dynamically adjusting TP and SL levels based on market volatility through the ATR.
IU Probability CalculatorHow This Script Works:
1. This script calculate the probability of price reaching a user-defined price level within one candle with the help Normal Distribution Probability Table.
2. Normal Distribution Probability Table is use for calculating probability of events, it's very powerful for calculation of probability and this script is fully based on that table.
3. It takes the Average True Range value or Standard Deviation value of past user-defined length bar.
4. After that it take this formula z = ( price_level - close ) / (ATR or Standard Deviation) and return the value for z, for the bearish side it take z = (close - price level) / (ATR or Standard Deviation ) formula.
5. Once we have the z it look into Normal Distribution Probability Table and match the value.
6. Now the value of z is multiple buy 100 in order to make it look in percentage term.
7. After that this script subtract the final value with 100 because probability always comes under 100%
8. finally we plot the probability at the bottom of the chart the red line indicates "The probability of price not reaching that price level", While the green line indicates "Probability of price Reaching that level " .
9. This script will work fine for both of the directions
How This Is Useful For The User:
1. With this script user can know the probability of price reaching the certain level within one candle for both Directions .
2. This is useful while creating options hedging strategies
3. This can be helpful for deciding stop loss level.
4. It's useful for scalpers for managing their traders and it can be use by binary option traders.
Quadratic & Linear Time Series Regression [SS]Hey everyone,
Releasing the Quadratic/Linear Time Series regression indicator.
About the indicator:
Most of you will be familiar with the conventional linear regression trend boxes (see below):
This is an awesome feature in Tradingview and there are quite a few indicators that follow this same principle.
However, because of the exponential and cyclical nature of stocks, linear regression tends to not be the best fit for stock time series data. From my experience, stocks tend to fit better with quadratic (or curvlinear) regression, which there really isn't a lot of resources for.
To put it into perspective, let's take SPX on the 1 month timeframe and plot a linear regression trend from 1930 till now:
You can see that its not really a great fit because of the exponential growth that SPX has endured since the 1930s. However, if we take a quadratic approach to the time series data, this is what we get:
This is a quadratic time series version, extended by up to 3 standard deviations. You can see that it is a bit more fitting.
Quadratic regression can also be helpful for looking at cycle patterns. For example, if we wanted to plot out how the S&P has performed from its COVID crash till now, this is how it would look using a linear regression approach:
But this is how it would look using the quadratic approach:
So which is better?
Both linear regression and quadratic regression are pivotal and important tools for traders. Sometimes, linear regression is more appropriate and others quadratic regression is more appropriate.
In general, if you are long dating your analysis and you want to see the trajectory of a ticker further back (over the course of say, 10 or 15 years), quadratic regression is likely going to be better for most stocks.
If you are looking for short term trades and short term trend assessments, linear regression is going to be the most appropriate.
The indicator will do both and it will fit the linear regression model to the data, which is different from other linreg indicators. Most will only find the start of the strongest trend and draw from there, this will fit the model to whatever period of time you wish, it just may not be that significant.
But, to keep it easy, the indicator will actually tell you which model will work better for the data you are selecting. You can see it in the example in the main chart, and here:
Here we see that the indicator indicates a better fit on the quadratic model.
And SPY during its recent uptrend:
For that, let's take a look at the Quadratic Vs the Linear, to see how they compare:
Quadratic:
Linear:
Functions:
You will see that you have 2 optional tables. The statistics table which shows you:
The R Squared to assess for Variance.
The Correlation to assess for the strength of the trend.
The Confidence interval which is set at a default of 1.96 but can be toggled to adjust for the confidence reading in the settings menu. (The confidence interval gives us a range of values that is likely to contain the true value of the coefficient with a certain level of confidence).
The strongest relationship (quadratic or linear).
Then there is the range table, which shows you the anticipated price ranges based on the distance in standard deviations from the mean.
The range table will also display to you how often a ticker has spent in each corresponding range, whether that be within the anticipated range, within 1 SD, 2 SD or 3 SD.
You can select up to 3 additional standard deviations to plot on the chart and you can manually select the 3 standard deviations you want to plot. Whether that be 1, 2, 3, or 1.5, 2.5 or 3.5, or any combination, you just enter the standard deviations in the settings menu and the indicator will adjust the price targets and plotted bands according to your preferences. It will also count the amount of time the ticker spent in that range based on your own selected standard deviation inputs.
Tips on Use:
This works best on the larger timeframes (1 hour and up), with RTH enabled.
The max lookback is 5,000 candles.
If you want to ascertain a longer term trend (over years to months), its best to adjust your chart timeframe to the weekly and/or monthly perspective.
And that's the indicator! Hopefully you all find it helpful.
Let me know your questions and suggestions below!
Safe trades to all!
Market Open - Relative VolumeThe indicator calculates the Pre-market volume percentage of the current day, relative to the average volume being traded in the trading session (14 days), displayed in Table Row 1, Table Cell 1, as V%. Pre-market volume between 15% & 30% has a orange background color. Pre-market volume percentage above 30% has a green background color.
The indicator calculates the relative volume per candle relative to the average volume being traded in that time period (14 days) (e.g., "1M," "2M," up to "5M"), displayed in a table. Relative volume between 250% & 350% has a orange background color. Relative volume above 350% has a green background color.
FYI >> Indicator calculations are per candle, not time unit (due to pine script restrictions). Meaning, the indicator current table data is only accurate in the 1M chart. If you are using the indicator in a higher timeframe, e.g., on the 5M chart, then the values in table cells >> (1M value == relative volume of the first 5-minute candle) (5M value = relative volume of the first five 5-minute candles) and so on. (Future versions will have a dynamic table).
Supertrend Targets [ChartPrime]The Supertrend Targets indicator combines the concepts of trend-following with dynamic volatility-based target levels. It takes core simple and classical concepts and provides actionable insights. The core of this indicator revolves around the "Supertrend" algorithm, which essentially uses the Average True Range (ATR) and a multiplier to determine if the price of a financial instrument is in an uptrend or downtrend. The indicator generates various plot points on the trading chart, which traders can use to make informed trading decisions.
Users can set several input parameters such as the source price, custom levels, multiplier scale, length of the average true range, and the window length. Traders can also opt to enable a table that shows numeric target data by percentiles, risk ratio, take profit and stop loss points.
The generated plots and fills on the chart represent various levels of potential gains and drawdowns, acting as potential targets for taking profit or stopping losses. These include the 25th, 50th, 75th, 90th, and 100th percentiles, which are adjustable by scale. There are also plots for average gain and drawdown levels, enhanced by standard deviation curves if enabled.
The Supertrend line indicators are color-coded for ease of understanding: blue for bullish performance and orange for bearish performance. The "Center Line" represents the point at which traders might consider entering a position.
Lastly, the script presents a summary table (when enabled) at the right side of the chart displaying numeric data of the plotted targets. This data provides additional insights on the risk-reward balance for each percentile, helping traders to execute their strategies more effectively.
Here's a comprehensive breakdown of its functionalities and features:
Inputs:
Source: Determines the price series type (e.g., Close, Open, High, Low, etc.).
Show Trailing Stop: Option to display the trailing stop on the chart.
Levels: Sets the number of target levels you want to display. Can range from -5 to 5.
Scale: A scaling factor for adjusting targets, can be between 1 to 100.
Window Length: Length for the target computation, determines how many bars will be considered.
Unique: Ensures every data point used in calculations is unique.
Multiplier: Multiplier for the ATR (Average True Range) to compute the SuperTrend.
ATR Length: Period for the ATR computation.
Custom Level: Allows users to set their own levels using various statistics like Average, Average + STDEV, Percentile, or can be disabled.
Percent Rank: Determines the percentile rank for targeting.
Enable Table: Enables or disables a table display.
Methods:
Flag: Identifies bullish and bearish trend reversals.
Target Percent: Determines the expected price movement (both gains and drawdowns) based on historical trend reversals.
Value Percent: Computes the percentage difference between the current price and the entry price during trend reversals.
Plots:
Multiple target lines are plotted on the chart to visualize potential gain and drawdown levels. These levels are adjusted based on user settings. Additionally, the main Supertrend line is plotted to indicate the prevailing trend direction.
Gain Levels: Target levels which show potential upside from the current price.
Drawdown Levels: Target levels which represent potential downside from the current price.
SuperTrend Line: A line that adjusts based on price volatility and trend direction, acting as a dynamic support or resistance.
In conclusion, the "Supertrend Targets " indicator is a powerful tool that combines the principle of trend-following with dynamic targets, providing traders with insights into potential future price movements. The range of customization options allows traders to adapt the indicator to different trading strategies and market conditions.
Philpose's Binary Turbo 1.2Hello there,
I'm thrilled to introduce my very first TradingView indicator - "Philpose's Binary Turbo 1.0." This indicator isn't just another tool; it's my unique take on binary options trading, powered by the Relative Strength Index (RSI).
Differences from Other Indicators:
This indicator is designed for traders who prefer short-term trading, as it uses a 1-minute timeframe.
It assumes that RSI crossovers of overbought and oversold levels can be used to generate binary options signals.
Users should backtest and evaluate the indicator's performance in different market conditions and consider risk management strategies.
Custom Logic: This indicator implements a custom trading logic based on RSI crossovers of overbought and oversold levels. Many indicators on TradingView use standard indicators, but this script incorporates unique logic.
Signal Tracking: It tracks and displays the last buy and sell signals on the chart. This visual representation can be helpful for traders to see when signals were generated.
Streak Tracking: The script keeps track of winning and losing streaks, which can provide traders with insights into their trading performance over time.
Table Summary: It creates a table summarizing various statistics related to the signals generated, such as total signals, wins, losses, and streaks. This tabular representation can be useful for traders to assess the indicator's performance.
How to Use:
To use this indicator effectively, follow these steps:
Add the Indicator: Copy and paste the script into TradingView's Pine Script editor. Then, apply the indicator to the chart.
Customize Parameters: Adjust the RSI parameters (period, overbought, and oversold levels) and the minimum bars between signals according to your trading strategy and preferences.
Interpret Signals: Buy signals are generated when the RSI crosses above the oversold level, and sell signals occur when it crosses below the overbought level.
Analyze Streaks: Keep an eye on the win and loss streaks to assess the indicator's performance and your trading strategy.
Review Table: The table at the top-right corner of the chart provides a summary of important statistics related to signals, wins, losses, and streaks.
Markets and Conditions:
The script can be used in various financial markets, including stocks, forex, commodities, and indices. However, it's important to note that binary options trading has a distinct risk profile and is available on certain platforms. Therefore, you should ensure that your chosen binary options platform supports TradingView indicators and that you understand the specific conditions of binary options trading.
Conditions for Use:
This indicator is designed for traders who prefer short-term trading, as it uses a 1-minute timeframe.
It assumes that RSI crossovers of overbought and oversold levels can be used to generate binary options signals.
Users should backtest and evaluate the indicator's performance in different market conditions and consider risk management strategies.
Please exercise caution when using any trading indicator or strategy, especially in binary options trading, as it involves a high level of risk, and you may lose your entire investment. It's advisable to thoroughly test any strategy on a demo account before trading with real funds and to seek the advice of a qualified financial advisor if you are unsure about your trading decisions.
Statistics: High & Low timings of custom session; 1yr historyGet statistics of the Session High and Session Low timings for any custom session; based on around 1yr of data.
//Purpose:
-To get data on the 'time of day' tendencies of an asset.
-Narrow in on a custom defined session and get statistics on that session.
//Notes:
-Input times are always in New York time (but changing the timezone after setting WILL adust both table stats and background highlight correctly.
-For particularly long sessions, make sure text size is set to 'tiny' (very long vertical table), or adjust table to display horizontally.
-You'll notice most assets show higher readings around NY equities open (9:30am NY time). Other assets will have 'hot-spots' at other times too.
-Timings represent the beginning of a 15m candle. i.e. reading for 15:45 represents a high occurring between 15:45 and 1600.
-Premium users should get 20k bars => around 1year's worth of data on a 15minute chart. Days of history is displayed in the top left corner of the table.
//Limitations
-only designed and working on 15minute timeframe (to gather a full year of meaningful/comparable % stats, need 15minute 'buckets' of time.
-sessions cannot cross through midnight, or start at midnight (00:15 is ok). 00:15 >> 23:45 is the max session length. On BTC, same applies but 01:00 instead of midnight (all in NY time).
-if your session crosses through 'dead time' (e.g. 17:00-18:00 S&P NY time); table will correctly omit these non-existent candles, but it will add on the missing hour before the start time.
//Cautionary note:
-Since markets are not uncommonly in a trending state when your defined session starts or ends, the high/low timings % readings for start and end of session may be misleadingly high. Try to look for unusually high readings that are not at the start/end of your session.
Wheat (ZW1!) 15min chart; Table displayed vertically:
Nasdaq (NQ1!) 15m chart; Table displayed horizontally and with smaller text to view a very long custom session:
RSI Screener and Divergence [5ema]
Displayed on the RSI chart according to a custom timeframe.
Displays the RSI tracking table of various timeframes.
Identify normal divergence, hidden divergence on RSI chat.
Show buy and sell signals (strong, weak) on the board.
Send notifications when RSI has a buy or sell signal.
-----
I reused some functions, made by (i believe that):
©paaax : The table position function.
@everget : The RSI divergence function.
@QuantNomad : The function calculated value and array to show on table for input symbols.
I have commented in my code. Thanks so much!
-----
How it works:
1. Input :
input.int length of RSI => calculate RSI.
input.int upper/lower => checking RSI overbought/oversold.
input.int right bars / left bars => returns price of the pivot low & high point => checking divergence.
input.int range upper / lower bars => compare the low & high point => checking divergence.
input.timeframe => request.security another time frame.
input.string table position => display screener table.
2. Input bool:
plot RSI on chart.
Plot Regular Bullish divergence .
Regular Bearish divergence.
Hidden Bullish divergence .
Hidden Bearish divergence.
3. Basic calculated:
Make function for RSI , pivot low & high point of RSI and price.
Request.security that function for earch time frame.
Result RSI, Divergence.
4. Condition of signal:
Buy condition:
RSI oversold (1)
Bullish divergence (2).
=> Buy if (1) and (2), review buy (1) or (2).
Sell condition:
RSI overbought (3).
Bearish divergence (4).
=> Sell if (3) and (4), review sell (3) or (4).
5. Table screener:
Time frame.
RSI (green - oversold, red - overbought)
Divergence (⬈⬈ - regular bullish , ⬊⬊ regular bearish , ⬊ - hidden bullish , ⬈ - hidden bearish ).
Signal (🟢 - Buy, 🔴 - sell, green 〇 - review buy, red 〇 - review sell)
----
This indicator is for reference only, you need your own method and strategy.
If you have any questions, please let me know in the comments.
MLExtensionsLibrary "MLExtensions"
normalizeDeriv(src, quadraticMeanLength)
Returns the smoothed hyperbolic tangent of the input series.
Parameters:
src : The input series (i.e., the first-order derivative for price).
quadraticMeanLength : The length of the quadratic mean (RMS).
Returns: nDeriv The normalized derivative of the input series.
normalize(src, min, max)
Rescales a source value with an unbounded range to a target range.
Parameters:
src : The input series
min : The minimum value of the unbounded range
max : The maximum value of the unbounded range
Returns: The normalized series
rescale(src, oldMin, oldMax, newMin, newMax)
Rescales a source value with a bounded range to anther bounded range
Parameters:
src : The input series
oldMin : The minimum value of the range to rescale from
oldMax : The maximum value of the range to rescale from
newMin : The minimum value of the range to rescale to
newMax : The maximum value of the range to rescale to
Returns: The rescaled series
color_green(prediction)
Assigns varying shades of the color green based on the KNN classification
Parameters:
prediction : Value (int|float) of the prediction
Returns: color
color_red(prediction)
Assigns varying shades of the color red based on the KNN classification
Parameters:
prediction : Value of the prediction
Returns: color
tanh(src)
Returns the the hyperbolic tangent of the input series. The sigmoid-like hyperbolic tangent function is used to compress the input to a value between -1 and 1.
Parameters:
src : The input series (i.e., the normalized derivative).
Returns: tanh The hyperbolic tangent of the input series.
dualPoleFilter(src, lookback)
Returns the smoothed hyperbolic tangent of the input series.
Parameters:
src : The input series (i.e., the hyperbolic tangent).
lookback : The lookback window for the smoothing.
Returns: filter The smoothed hyperbolic tangent of the input series.
tanhTransform(src, smoothingFrequency, quadraticMeanLength)
Returns the tanh transform of the input series.
Parameters:
src : The input series (i.e., the result of the tanh calculation).
smoothingFrequency
quadraticMeanLength
Returns: signal The smoothed hyperbolic tangent transform of the input series.
n_rsi(src, n1, n2)
Returns the normalized RSI ideal for use in ML algorithms.
Parameters:
src : The input series (i.e., the result of the RSI calculation).
n1 : The length of the RSI.
n2 : The smoothing length of the RSI.
Returns: signal The normalized RSI.
n_cci(src, n1, n2)
Returns the normalized CCI ideal for use in ML algorithms.
Parameters:
src : The input series (i.e., the result of the CCI calculation).
n1 : The length of the CCI.
n2 : The smoothing length of the CCI.
Returns: signal The normalized CCI.
n_wt(src, n1, n2)
Returns the normalized WaveTrend Classic series ideal for use in ML algorithms.
Parameters:
src : The input series (i.e., the result of the WaveTrend Classic calculation).
n1
n2
Returns: signal The normalized WaveTrend Classic series.
n_adx(highSrc, lowSrc, closeSrc, n1)
Returns the normalized ADX ideal for use in ML algorithms.
Parameters:
highSrc : The input series for the high price.
lowSrc : The input series for the low price.
closeSrc : The input series for the close price.
n1 : The length of the ADX.
regime_filter(src, threshold, useRegimeFilter)
Parameters:
src
threshold
useRegimeFilter
filter_adx(src, length, adxThreshold, useAdxFilter)
filter_adx
Parameters:
src : The source series.
length : The length of the ADX.
adxThreshold : The ADX threshold.
useAdxFilter : Whether to use the ADX filter.
Returns: The ADX.
filter_volatility(minLength, maxLength, useVolatilityFilter)
filter_volatility
Parameters:
minLength : The minimum length of the ATR.
maxLength : The maximum length of the ATR.
useVolatilityFilter : Whether to use the volatility filter.
Returns: Boolean indicating whether or not to let the signal pass through the filter.
backtest(high, low, open, startLongTrade, endLongTrade, startShortTrade, endShortTrade, isStopLossHit, maxBarsBackIndex, thisBarIndex)
Performs a basic backtest using the specified parameters and conditions.
Parameters:
high : The input series for the high price.
low : The input series for the low price.
open : The input series for the open price.
startLongTrade : The series of conditions that indicate the start of a long trade.`
endLongTrade : The series of conditions that indicate the end of a long trade.
startShortTrade : The series of conditions that indicate the start of a short trade.
endShortTrade : The series of conditions that indicate the end of a short trade.
isStopLossHit : The stop loss hit indicator.
maxBarsBackIndex : The maximum number of bars to go back in the backtest.
thisBarIndex : The current bar index.
Returns: A tuple containing backtest values
init_table()
init_table()
Returns: tbl The backtest results.
update_table(tbl, tradeStatsHeader, totalTrades, totalWins, totalLosses, winLossRatio, winrate, stopLosses)
update_table(tbl, tradeStats)
Parameters:
tbl : The backtest results table.
tradeStatsHeader : The trade stats header.
totalTrades : The total number of trades.
totalWins : The total number of wins.
totalLosses : The total number of losses.
winLossRatio : The win loss ratio.
winrate : The winrate.
stopLosses : The total number of stop losses.
Returns: Updated backtest results table.
SUPER MULTI MOVING AVERAGE [Gabbo]📈 Moving Average Indicator Update - Version 2
🔹 New Features and Improvements:
1️⃣ Enhanced MA Selection for Table Lines:
Previously, the indicator did not allow users to choose a different Moving Average type for the table lines. Now, you can select the MA type for the table.
2️⃣ New Table Text Customization Inputs:
Added inputs to choose the table text color and size for a more personalized display.
3️⃣ Improved Input Visibility and Organization:
We’ve reorganized the inputs so that the most commonly used options are now placed at the beginning for quicker and more convenient configuration.
4️⃣ Bug Fixes and Code Improvements:
Minor bugs have been fixed, and the code has been optimized for improved stability and performance. The code is now cleaner and fully functional in version 6.
5️⃣ Cometreon Public Library Integration:
To lighten the code and improve modularity, we’ve integrated the Cometreon public library. This makes the code more efficient and reduces the need to duplicate common functions.
☄️ With this update, the Moving Average indicator becomes even more versatile and user-friendly, offering a refined table interface and enhanced customization options!
Auto Support & Resistance With Wick Signals & Percentage GapsThis auto support and resistance indicator uses percentage deviations from the previous session close to calculate levels. It provides arrows as signals when it detects 2 wicks in the last 5 bars from a support or resistance level. Includes alerts for price crossing any level as well as real time percentage gaps from current price to the next closest support and resistance level. You also have the option to set up to 3 major levels of your own for any levels that are very important on longer timeframes that you want included. Those will show on the chart as well as within your percentage gap table with color coded background. All features can be customized or turned off to suit your preferences.
SOURCE
This indicator uses the previous session close as a source by default but can be adjusted to use the previous session high or the previous session low. I find the close setting to provide the most accurate levels.
SESSION
The default setting for the previous session used is the daily session but can be adjusted to use the daily, weekly, monthly, quarterly or yearly session. Use longer sessions when looking at longer time frame charts.
SIGNALS
The signals by default are set to only show an arrow if there have been 2 bullish or bearish wicks off of a support or resistance level in the last 5 bars. This can be changed to one bullish wick off of support and one bearish wick off of resistance or it can be set to give a signal anytime a bar crosses a support or resistance level. This can be controlled in the indicator settings.
PERCENTAGE DEVIATION LEVELS
The default percentage deviation is set to 1% but can and should be adjusted according to whatever ticker you are using. For example use .25% or .5% when looking at forex intraday charts since they are not as volatile as other markets. For leveraged etfs used 1% multiplied by the leverage on the etf, so for SQQQ use 3% as it is a 3x leveraged etf. When looking at longer timeframes or highly volatile charts, set the percentage deviation to 2%, 5%, 10%, etc.
LINE COLORS
The color of the lines will change from red to green depending on if the price is above or below that level. You can customize these colors in the settings.
MAJOR LEVELS
If you have major levels of support and resistance from longer timeframes and your own charting, you can add up to 3 major levels that will show on the chart as well as show the percentage gaps in the table. The label for each major level will be colored to match the color of the line on the chart individually.
PERCENTAGE GAP TABLE
The gap table will update live with percentages to go from current price to the next closest support and resistance levels so you don’t have to calculate them manually. The position of the percentage gap table can also be changed within the indicator settings.
TURN FEATURES ON/OFF
There are 3 toggle switches so you can easily turn on or off certain features such as: the support and resistance lines, the percentage gaps table and the arrow signals.
LINE WIDTHS
You can also set the line width of all levels and the line width of the starting level within the indicator settings.
***MARKETS***
This indicator can be used as a signal on all markets, including stocks, crypto, futures and forex.
***TIMEFRAMES***
This automatic support and resistance indicator can be used on all timeframes as long as there is enough data for the session used.
***TIPS***
Try using numerous indicators of ours on your chart so you can instantly see the bullish or bearish trend of multiple indicators in real time without having to analyze the data. Some of our favorites are our Volume Spike Scanner, Volume Profile, Momentum and Trend Friend in combination with this auto support and resistance indicator. They all have real time Bullish and Bearish labels as well so you can immediately understand each indicator's trend.
Volatility Adjusted Grid [Gann]█ OVERVIEW
Gann Square of 9 is one of the many brilliant concepts from W.D.Gann himself where it revolves around the idea that price is moving in a certain geometrical pattern. Numbers on the Square of 9 spiral tables, especially those lie in every 45degree in the chart act as key vibration levels where prices have tendency to react to (more on the table below).
There are few square of 9 related scripts here in Tradingview and while there's nothing wrong with them, it doesn't address 1 particular issue that i have: The numbers can be too rigid even when scaled based on current price because the levels are fixed, which makes them not tradable on certain timeframes depending on where the price currently sitting.
Heres 5min and 1hour Bitcoin chart to illustrate what i mean: Grey line on the left is based on Volatility Adjusted levels, while red/blue on the right are the standard Gann levels.
You can see that on 1hour chart, it provides a good levels (both Volatility Adjusted and the standard one happened to share the same multiplier in this case),
1Hour Chart:
On 5 min chart tells a different story as the range between blue/red levels can be deemed as to big for a short term trade, while the grey line is adjusted to suit that particular timeframe (You can still adjust to make it bigger/smaller from the settings, more on this below)
5Min Chart:
█ Little bit on Gann Square of 9 table
This is the square of nine table, the numbers highlighted in Red are known as Cardinal Cross and considered to be a major Support/Resistance while those in Blue color are known as Ordinal Cross considered as minor (but still important) Support/Resistance levels
Similarly, this script use these numbers (and certain multipliers) to print out the levels, with Cardinal numbers represented by solid lines and Ordinal numbers by dotted lines.
█ How it Works and Limitations
The Volatility Adjusted grid will go through several iterations of different multipliers to find the Gann number range that is at least bigger than times ATR. Because it's using ATR to determine the range, occasionally you'll notice that the line become smaller as ATR contracting (and vice versa). To overcome this, you can change the size range multiplier from the settings to retrieve the previous range size.
Use the size guide at the bottom left to find the multiplier that suits your need:
1st Row -> Previous Range -- Change Range Size to number lower than this to get a smaller range
2nd Row -> Next Range -- Change Range Size to number higher than this to get a larger range
Example:
Before:
After:
As you'll soon realise, the key here is to find the range that fits the historical structure and suits your own strategy. Enjoy :)
█ Disclaimer
Past performance is not an indicator of future results.
My opinions and research are my own and do not constitute financial advice in any way whatsoever.
Nothing published by me constitutes an investment recommendation, nor should any data or Content published by me be relied upon for any investment/trading activities.
I strongly recommends that you perform your own independent research and/or speak with a qualified investment professional before making any financial decisions.
Any ideas to further improve this indicator are welcome :)
US/SPY- Financial Regime Index Swing Strategy Credits: concept inspired by EdgeTools Bloomberg Financial Conditions Index (Proxy)
Improvements: eight component basket, inverse volatility weights, winsorization option( statistical technique used to limit the influence of outliers in a dataset by replacing extreme values with less extreme ones, rather than removing them entirely), slope and price gates, exit guards, table and gradients.
Summary in one paragraph
A macro regime swing strategy for index ETFs, futures, FX majors, and large cap equities on daily calculation with optional lower time execution. It acts only when a composite Financial Conditions proxy plus slope and an optional price filter align. Originality comes from an eight component macro basket with inverse volatility weights and winsorized return z scores that produce a portable yardstick.
Scope and intent
Markets: SPY and peers, ES futures, ACWI, liquid FX majors, BTC, large cap equities.
Timeframes: calculation daily by default, trade on any chart.
Default demo: SPY on Daily.
Purpose: convert broad financial conditions into clear swing bias and exits.
Originality and usefulness
Unique fusion: return z scores for eight liquid proxies with inverse volatility weighting and optional winsorization, then slope and price gates.
Failure mode addressed: false starts in chop and early shorts during easy liquidity.
Testability: all knobs are inputs and the table shows components and weights.
Portable yardstick: z scores center at zero so thresholds transfer across symbols.
Method overview in plain language
Base measures
Return basis: natural log return over a configurable window, standardized to a z score. Winsorization optional to cap extremes.
Components
EQ US and EQ GLB measure equity tone.
CREDIT uses LQD over HYG. Higher credit quality outperformance is risk off so sign is flipped after z score.
RATES2Y uses two year yield, sign flipped.
SLOPE uses ten minus two year yield spread.
USD uses DXY, sign flipped.
VOL uses VIX, sign flipped.
LIQ uses BIL over SPY, sign flipped.
Each component is smoothed by the composite EMA.
Fusion rule
Weighted sum where weights are equal or inverse volatility with exponent gamma, normalized to percent so they sum to one.
Signal rule
Long when composite crosses up the long threshold and its slope is positive and price is above the SMA filter, or when composite is above the configured always long floor.
Short when composite crosses down the short threshold and its slope is negative and price is below the SMA filter.
Long exit on cross down of the long exit line or on a fresh short signal.
Short exit on cross up of the short exit line or on a fresh long signal, or when composite falls below the force short exit guard.
What you will see on the chart
Markers on suggestion bars: L for long, S for short, LX and SX for exits.
Reference lines at zero and soft regime bands at plus one and minus one.
Optional background gradient by regime intensity.
Compact table with component z, weight percent, and composite readout.
Table fields and quick reading guide
Component: EQ US, EQ GLB, CREDIT, RATES2Y, SLOPE, USD, VOL, LIQ.
Z: current standardized value, green for positive risk tone where applicable.
Weight: contribution percent after normalization.
Composite: current index value.
Reading tip: a broadly green Z column with slope positive often precedes better long context.
Inputs with guidance
Setup
Calc timeframe: default Daily. Leave blank to inherit chart.
Lookback: 50 to 1500. Larger length stabilizes regimes and delays turns.
EMA smoothing: 1 to 200. Higher smooths noise and delays signals.
Normalization
Winsorize z at ±3: caps extremes to reduce one off shocks.
Return window for equities: 5 to 260. Shorter reacts faster.
Weighting
Weight lookback: 20 to 520.
Weight mode: Equal or InvVol.
InvVol exponent gamma: 0.1 to 3. Higher compresses noisy components more.
Signals
Trade side: Long Short or Both.
Entry threshold long and short: portable z thresholds.
Exit line long and short: soft exits that give back less.
Slope lookback bars: 1 to 20.
Always long floor bfci ≥ X: macro easy mode keep long.
Force short exit when bfci < Y: macro stress guard.
Confirm
Use price trend filter and Price SMA length.
View
Glow line and Show component table.
Symbols
SPY ACWI HYG LQD VIX DXY US02Y US10Y BIL are defaults and can be changed.
Realism and responsible publication
No performance claims. Past is not future.
Shapes can move intrabar and settle on close.
Execution is on standard candles only.
Honest limitations and failure modes
Major economic releases and illiquid sessions can break assumptions.
Very quiet regimes reduce contrast. Use longer windows or higher thresholds.
Component proxies are ETFs and indexes and cannot match a proprietary FCI exactly.
Strategy notice
Orders are simulated on standard candles. All security calls use lookahead off. Nonstandard chart types are not supported for strategies.
Entries and exits
Long rule: bfci cross above long threshold with positive slope and optional price filter OR bfci above the always long floor.
Short rule: bfci cross below short threshold with negative slope and optional price filter.
Exit rules: long exit on bfci cross below long exit or on a short signal. Short exit on bfci cross above short exit or on a long signal or on force close guard.
Position sizing
Percent of equity by default. Keep target risk per trade low. One percent is a sensible starting point. For this example we used 3% of the total capital
Commisions
We used a 0.05% comission and 5 tick slippage
Legal
Education and research only. Not investment advice. Test in simulation first. Use realistic costs.
Volatilidad Multi-TF📊 Multi-Timeframe Volatility (ATR%)
Description
Indicator that displays the current asset's volatility across multiple timeframes simultaneously. It uses the ATR (Average True Range) normalized as a percentage of price, allowing for objective volatility comparison across different timeframes.
✨ Key Features
- Multi-Timeframe Analysis: Visualize volatility across 5 different timeframes (1H, 4H, D, W, M)
- Normalized Volatility: ATR expressed as a percentage of price for accurate comparison
- Compact Table: Clean and easy-to-read interface in the corner of your chart
- Auto-Update: Automatically adapts to the asset you're viewing
- No Additional Plots: Only displays essential information in table format
🎯 How to Use
1. Add the indicator to your chart
2. The table will automatically display the current asset's volatility
3. Percentage values allow you to quickly identify:
- Which timeframe has higher/lower volatility
- Divergences between timeframes
- High or low volatility zones to adjust your strategies
⚙️ Configurable Parameters
- ATR Period: Default 14, adjust according to your strategy
📈 Practical Applications
- Risk Management: Adjust position sizing based on current volatility
- Asset Selection: Identify assets with suitable volatility for your profile
- Entry Timing: Detect volatility expansions/contractions
- Timeframe Analysis: Compare volatility across different time periods
💡 Technical Notes
- Normalized ATR allows volatility comparison between assets with different prices
- Useful for both intraday trading (1H, 4H) and swing/positional trading (D, W, M)
- Compatible with any market: cryptocurrencies, forex, stocks, indices
⚠️ Disclaimer
This indicator is a technical analysis tool. It does not constitute financial advice. Conduct your own analysis and risk management before trading.
Volume Delta Volume Signals by Claudio [hapharmonic]// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at mozilla.org
// © hapharmonic
//@version=6
FV = format.volume
FP = format.percent
indicator('Volume Delta Volume Signals by Claudio ', format = FV, max_bars_back = 4999, max_labels_count = 500)
//------------------------------------------
// Settings |
//------------------------------------------
bool usecandle = input.bool(true, title = 'Volume on Candles',display=display.none)
color C_Up = input.color(#12cef8, title = 'Volume Buy', inline = ' ', group = 'Style')
color C_Down = input.color(#fe3f00, title = 'Volume Sell', inline = ' ', group = 'Style')
// ✅ Nueva entrada para colores de señales
color buySignalColor = input.color(color.new(color.green, 0), "Buy Signal Color", group = "Signals")
color sellSignalColor = input.color(color.new(color.red, 0), "Sell Signal Color", group = "Signals")
string P_ = input.string(position.top_right,"Position",options = ,
group = "Style",display=display.none)
string sL = input.string(size.small , 'Size Label', options = , group = 'Style',display=display.none)
string sT = input.string(size.normal, 'Size Table', options = , group = 'Style',display=display.none)
bool Label = input.bool(false, inline = 'l')
History = input.bool(true, inline = 'l')
// Inputs for EMA lengths and volume confirmation
bool MAV = input.bool(true, title = 'EMA', group = 'EMA')
string volumeOption = input.string('Use Volume Confirmation', title = 'Volume Option', options = , group = 'EMA',display=display.none)
bool useVolumeConfirmation = volumeOption == 'none' ? false : true
int emaFastLength = input(12, title = 'Fast EMA Length', group = 'EMA',display=display.none)
int emaSlowLength = input(26, title = 'Slow EMA Length', group = 'EMA',display=display.none)
int volumeConfirmationLength = input(6, title = 'Volume Confirmation Length', group = 'EMA',display=display.none)
string alert_freq = input.string(alert.freq_once_per_bar_close, title="Alert Frequency",
options= ,group = "EMA",
tooltip="If you choose once_per_bar, you will receive immediate notifications (but this may cause interference or indicator repainting).
\n However, if you choose once_per_bar_close, it will wait for the candle to confirm the signal before notifying.",display=display.none)
//------------------------------------------
// UDT_identifier |
//------------------------------------------
type OHLCV
float O = open
float H = high
float L = low
float C = close
float V = volume
type VolumeData
float buyVol
float sellVol
float pcBuy
float pcSell
bool isBuyGreater
float higherVol
float lowerVol
color higherCol
color lowerCol
//------------------------------------------
// Calculate volumes and percentages |
//------------------------------------------
calcVolumes(OHLCV ohlcv) =>
var VolumeData data = VolumeData.new()
data.buyVol := ohlcv.V * (ohlcv.C - ohlcv.L) / (ohlcv.H - ohlcv.L)
data.sellVol := ohlcv.V - data.buyVol
data.pcBuy := data.buyVol / ohlcv.V * 100
data.pcSell := 100 - data.pcBuy
data.isBuyGreater := data.buyVol > data.sellVol
data.higherVol := data.isBuyGreater ? data.buyVol : data.sellVol
data.lowerVol := data.isBuyGreater ? data.sellVol : data.buyVol
data.higherCol := data.isBuyGreater ? C_Up : C_Down
data.lowerCol := data.isBuyGreater ? C_Down : C_Up
data
//------------------------------------------
// Get volume data |
//------------------------------------------
ohlcv = OHLCV.new()
volData = calcVolumes(ohlcv)
// Plot volumes and create labels
plot(ohlcv.V, color=color.new(volData.higherCol, 90), style=plot.style_columns, title='Total',display = display.all - display.status_line)
plot(ohlcv.V, color=volData.higherCol, style=plot.style_stepline_diamond, title='Total2', linewidth = 2,display = display.pane)
plot(volData.higherVol, color=volData.higherCol, style=plot.style_columns, title='Higher Volume', display = display.all - display.status_line)
plot(volData.lowerVol , color=volData.lowerCol , style=plot.style_columns, title='Lower Volume',display = display.all - display.status_line)
S(D,F)=>str.tostring(D,F)
volStr = S(math.sign(ta.change(ohlcv.C)) * ohlcv.V, FV)
buyVolStr = S(volData.buyVol , FV )
sellVolStr = S(volData.sellVol , FV )
// ✅ MODIFICACIÓN: Porcentaje sin decimales
buyPercentStr = str.tostring(math.round(volData.pcBuy)) + " %"
sellPercentStr = str.tostring(math.round(volData.pcSell)) + " %"
totalbuyPercentC_ = volData.buyVol / (volData.buyVol + volData.sellVol) * 100
sup = not na(ohlcv.V)
if sup
TC = text.align_center
CW = color.white
var table tb = table.new(P_, 6, 6, bgcolor = na, frame_width = 2, frame_color = chart.fg_color, border_width = 1, border_color = CW)
tb.cell(0, 0, text = 'Volume Candles', text_color = #FFBF00, bgcolor = #0E2841, text_halign = TC, text_valign = TC, text_size = sT)
tb.merge_cells(0, 0, 5, 0)
tb.cell(0, 1, text = 'Current Volume', text_color = CW, bgcolor = #0B3040, text_halign = TC, text_valign = TC, text_size = sT)
tb.merge_cells(0, 1, 1, 1)
tb.cell(0, 2, text = 'Buy', text_color = #000000, bgcolor = #92D050, text_halign = TC, text_valign = TC, text_size = sT)
tb.cell(1, 2, text = 'Sell', text_color = #000000, bgcolor = #FF0000, text_halign = TC, text_valign = TC, text_size = sT)
tb.cell(0, 3, text = buyVolStr, text_color = CW, bgcolor = #074F69, text_halign = TC, text_valign = TC, text_size = sT)
tb.cell(1, 3, text = sellVolStr, text_color = CW, bgcolor = #074F69, text_halign = TC, text_valign = TC, text_size = sT)
tb.cell(0, 5, text = 'Net: ' + volStr, text_color = CW, bgcolor = #074F69, text_halign = TC, text_valign = TC, text_size = sT)
tb.merge_cells(0, 5, 1, 5)
tb.cell(0, 4, text = buyPercentStr, text_color = CW, bgcolor = #074F69, text_halign = TC, text_valign = TC, text_size = sT)
tb.cell(1, 4, text = sellPercentStr, text_color = CW, bgcolor = #074F69, text_halign = TC, text_valign = TC, text_size = sT)
cellCount = 20
filledCells = 0
for r = 5 to 1 by 1
for c = 2 to 5 by 1
if filledCells < cellCount * (totalbuyPercentC_ / 100)
tb.cell(c, r, text = '', bgcolor = C_Up)
else
tb.cell(c, r, text = '', bgcolor = C_Down)
filledCells := filledCells + 1
filledCells
if Label
sp = ' '
l = label.new(bar_index, ohlcv.V,
text=str.format('Net: {0}\nBuy: {1} ({2})\nSell: {3} ({4})\n{5}/\\\n {5}l\n {5}l',
volStr, buyVolStr, buyPercentStr, sellVolStr, sellPercentStr, sp),
style=label.style_none, textcolor=volData.higherCol, size=sL, textalign=text.align_left)
if not History
(l ).delete()
//------------------------------------------
// Draw volume levels on the candlesticks |
//------------------------------------------
float base = na,float value = na
bool uc = usecandle and sup
if volData.isBuyGreater
base := math.min(ohlcv.O, ohlcv.C)
value := base + math.abs(ohlcv.O - ohlcv.C) * (volData.pcBuy / 100)
else
base := math.max(ohlcv.O, ohlcv.C)
value := base - math.abs(ohlcv.O - ohlcv.C) * (volData.pcSell / 100)
barcolor(sup ? color.new(na, na) : ohlcv.C < ohlcv.O ? color.red : color.green,display = usecandle? display.all:display.none)
UseC = uc ? volData.higherCol:color.new(na, na)
plotcandle(uc?base:na, uc?base:na, uc?value:na, uc?value:na,
title='Body', color=UseC, bordercolor=na, wickcolor=UseC,
display = usecandle ? display.all - display.status_line : display.none, force_overlay=true,editable=false)
plotcandle(uc?ohlcv.O:na, uc?ohlcv.H:na, uc?ohlcv.L:na, uc?ohlcv.C:na,
title='Fill', color=color.new(UseC,80), bordercolor=UseC, wickcolor=UseC,
display = usecandle ? display.all - display.status_line : display.none, force_overlay=true,editable=false)
//------------------------------------------------------------
// Plot the EMA and filter out the noise with volume control. |
//------------------------------------------------------------
float emaFast = ta.ema(ohlcv.C, emaFastLength)
float emaSlow = ta.ema(ohlcv.C, emaSlowLength)
bool signal = emaFast > emaSlow
color c_signal = signal ? C_Up : C_Down
float volumeMA = ta.sma(ohlcv.V, volumeConfirmationLength)
bool crossover = ta.crossover(emaFast, emaSlow)
bool crossunder = ta.crossunder(emaFast, emaSlow)
isVolumeConfirmed(source, length, ma) =>
math.sum(source > ma ? source : 0, length) >= math.sum(source < ma ? source : 0, length)
bool ISV = isVolumeConfirmed(ohlcv.V, volumeConfirmationLength, volumeMA)
bool crossoverConfirmed = crossover and (not useVolumeConfirmation or ISV)
bool crossunderConfirmed = crossunder and (not useVolumeConfirmation or ISV)
PF = MAV ? emaFast : na
PS = MAV ? emaSlow : na
p1 = plot(PF, color = c_signal, editable = false, force_overlay = true, display = display.pane)
plot(PF, color = color.new(c_signal, 80), linewidth = 10, editable = false, force_overlay = true, display = display.pane)
plot(PF, color = color.new(c_signal, 90), linewidth = 20, editable = false, force_overlay = true, display = display.pane)
plot(PF, color = color.new(c_signal, 95), linewidth = 30, editable = false, force_overlay = true, display = display.pane)
plot(PF, color = color.new(c_signal, 98), linewidth = 45, editable = false, force_overlay = true, display = display.pane)
p2 = plot(PS, color = c_signal, editable = false, force_overlay = true, display = display.pane)
plot(PS, color = color.new(c_signal, 80), linewidth = 10, editable = false, force_overlay = true, display = display.pane)
plot(PS, color = color.new(c_signal, 90), linewidth = 20, editable = false, force_overlay = true, display = display.pane)
plot(PS, color = color.new(c_signal, 95), linewidth = 30, editable = false, force_overlay = true, display = display.pane)
plot(PS, color = color.new(c_signal, 98), linewidth = 45, editable = false, force_overlay = true, display = display.pane)
fill(p1, p2, top_value=crossover ? emaFast : emaSlow,
bottom_value =crossover ? emaSlow : emaFast,
top_color =color.new(c_signal, 80),
bottom_color =color.new(c_signal, 95)
)
// ✅ Usar colores configurables para señales
plotshape(crossoverConfirmed and MAV, style=shape.triangleup , location=location.belowbar, color=buySignalColor , size=size.small, force_overlay=true,display =display.pane)
plotshape(crossunderConfirmed and MAV, style=shape.triangledown, location=location.abovebar, color=sellSignalColor, size=size.small, force_overlay=true,display =display.pane)
string msg = '---------\n'+"Buy volume ="+buyVolStr+"\nBuy Percent = "+buyPercentStr+"\nSell volume = "+sellVolStr+"\nSell Percent = "+sellPercentStr+"\nNet = "+volStr+'\n---------'
if crossoverConfirmed
alert("Price (" + str.tostring(close) + ") Crossed over MA\n" + msg, alert_freq)
if crossunderConfirmed
alert("Price (" + str.tostring(close) + ") Crossed under MA\n" + msg, alert_freq)
BOCS Channel Scalper Strategy - Automated Mean Reversion System# BOCS Channel Scalper Strategy - Automated Mean Reversion System
## WHAT THIS STRATEGY DOES:
This is an automated mean reversion trading strategy that identifies consolidation channels through volatility analysis and executes scalp trades when price enters entry zones near channel boundaries. Unlike breakout strategies, this system assumes price will revert to the channel mean, taking profits as price bounces back from extremes. Position sizing is fully customizable with three methods: fixed contracts, percentage of equity, or fixed dollar amount. Stop losses are placed just outside channel boundaries with take profits calculated either as fixed points or as a percentage of channel range.
## KEY DIFFERENCE FROM ORIGINAL BOCS:
**This strategy is designed for traders seeking higher trade frequency.** The original BOCS indicator trades breakouts OUTSIDE channels, waiting for price to escape consolidation before entering. This scalper version trades mean reversion INSIDE channels, entering when price reaches channel extremes and betting on a bounce back to center. The result is significantly more trading opportunities:
- **Original BOCS**: 1-3 signals per channel (only on breakout)
- **Scalper Version**: 5-15+ signals per channel (every touch of entry zones)
- **Trade Style**: Mean reversion vs trend following
- **Hold Time**: Seconds to minutes vs minutes to hours
- **Best Markets**: Ranging/choppy conditions vs trending breakouts
This makes the scalper ideal for active day traders who want continuous opportunities within consolidation zones rather than waiting for breakout confirmation. However, increased trade frequency also means higher commission costs and requires tighter risk management.
## TECHNICAL METHODOLOGY:
### Price Normalization Process:
The strategy normalizes price data to create consistent volatility measurements across different instruments and price levels. It calculates the highest high and lowest low over a user-defined lookback period (default 100 bars). Current close price is normalized using: (close - lowest_low) / (highest_high - lowest_low), producing values between 0 and 1 for standardized volatility analysis.
### Volatility Detection:
A 14-period standard deviation is applied to the normalized price series to measure price deviation from the mean. Higher standard deviation values indicate volatility expansion; lower values indicate consolidation. The strategy uses ta.highestbars() and ta.lowestbars() to identify when volatility peaks and troughs occur over the detection period (default 14 bars).
### Channel Formation Logic:
When volatility crosses from a high level to a low level (ta.crossover(upper, lower)), a consolidation phase begins. The strategy tracks the highest and lowest prices during this period, which become the channel boundaries. Minimum duration of 10+ bars is required to filter out brief volatility spikes. Channels are rendered as box objects with defined upper and lower boundaries, with colored zones indicating entry areas.
### Entry Signal Generation:
The strategy uses immediate touch-based entry logic. Entry zones are defined as a percentage from channel edges (default 20%):
- **Long Entry Zone**: Bottom 20% of channel (bottomBound + channelRange × 0.2)
- **Short Entry Zone**: Top 20% of channel (topBound - channelRange × 0.2)
Long signals trigger when candle low touches or enters the long entry zone. Short signals trigger when candle high touches or enters the short entry zone. This captures mean reversion opportunities as price reaches channel extremes.
### Cooldown Filter:
An optional cooldown period (measured in bars) prevents signal spam by enforcing minimum spacing between consecutive signals. If cooldown is set to 3 bars, no new long signal will fire until 3 bars after the previous long signal. Long and short cooldowns are tracked independently, allowing both directions to signal within the same period.
### ATR Volatility Filter:
The strategy includes a multi-timeframe ATR filter to avoid trading during low-volatility conditions. Using request.security(), it fetches ATR values from a specified timeframe (e.g., 1-minute ATR while trading on 5-minute charts). The filter compares current ATR to a user-defined minimum threshold:
- If ATR ≥ threshold: Trading enabled
- If ATR < threshold: No signals fire
This prevents entries during dead zones where mean reversion is unreliable due to insufficient price movement.
### Take Profit Calculation:
Two TP methods are available:
**Fixed Points Mode**:
- Long TP = Entry + (TP_Ticks × syminfo.mintick)
- Short TP = Entry - (TP_Ticks × syminfo.mintick)
**Channel Percentage Mode**:
- Long TP = Entry + (ChannelRange × TP_Percent)
- Short TP = Entry - (ChannelRange × TP_Percent)
Default 50% targets the channel midline, a natural mean reversion target. Larger percentages aim for opposite channel edge.
### Stop Loss Placement:
Stop losses are placed just outside the channel boundary by a user-defined tick offset:
- Long SL = ChannelBottom - (SL_Offset_Ticks × syminfo.mintick)
- Short SL = ChannelTop + (SL_Offset_Ticks × syminfo.mintick)
This logic assumes channel breaks invalidate the mean reversion thesis. If price breaks through, the range is no longer valid and position exits.
### Trade Execution Logic:
When entry conditions are met (price in zone, cooldown satisfied, ATR filter passed, no existing position):
1. Calculate entry price at zone boundary
2. Calculate TP and SL based on selected method
3. Execute strategy.entry() with calculated position size
4. Place strategy.exit() with TP limit and SL stop orders
5. Update info table with active trade details
The strategy enforces one position at a time by checking strategy.position_size == 0 before entry.
### Channel Breakout Management:
Channels are removed when price closes more than 10 ticks outside boundaries. This tolerance prevents premature channel deletion from minor breaks or wicks, allowing the mean reversion setup to persist through small boundary violations.
### Position Sizing System:
Three methods calculate position size:
**Fixed Contracts**:
- Uses exact contract quantity specified in settings
- Best for futures traders (e.g., "trade 2 NQ contracts")
**Percentage of Equity**:
- position_size = (strategy.equity × equity_pct / 100) / close
- Dynamically scales with account growth
**Cash Amount**:
- position_size = cash_amount / close
- Maintains consistent dollar exposure regardless of price
## INPUT PARAMETERS:
### Position Sizing:
- **Position Size Type**: Choose Fixed Contracts, % of Equity, or Cash Amount
- **Number of Contracts**: Fixed quantity per trade (1-1000)
- **% of Equity**: Percentage of account to allocate (1-100%)
- **Cash Amount**: Dollar value per position ($100+)
### Channel Settings:
- **Nested Channels**: Allow multiple overlapping channels vs single channel
- **Normalization Length**: Lookback for high/low calculation (1-500, default 100)
- **Box Detection Length**: Period for volatility detection (1-100, default 14)
### Scalping Settings:
- **Enable Long Scalps**: Toggle long entries on/off
- **Enable Short Scalps**: Toggle short entries on/off
- **Entry Zone % from Edge**: Size of entry zone (5-50%, default 20%)
- **SL Offset (Ticks)**: Distance beyond channel for stop (1+, default 5)
- **Cooldown Period (Bars)**: Minimum spacing between signals (0 = no cooldown)
### ATR Filter:
- **Enable ATR Filter**: Toggle volatility filter on/off
- **ATR Timeframe**: Source timeframe for ATR (1, 5, 15, 60 min, etc.)
- **ATR Length**: Smoothing period (1-100, default 14)
- **Min ATR Value**: Threshold for trade enablement (0.1+, default 10.0)
### Take Profit Settings:
- **TP Method**: Choose Fixed Points or % of Channel
- **TP Fixed (Ticks)**: Static distance in ticks (1+, default 30)
- **TP % of Channel**: Dynamic target as channel percentage (10-100%, default 50%)
### Appearance:
- **Show Entry Zones**: Toggle zone labels on channels
- **Show Info Table**: Display real-time strategy status
- **Table Position**: Corner placement (Top Left/Right, Bottom Left/Right)
- **Color Settings**: Customize long/short/TP/SL colors
## VISUAL INDICATORS:
- **Channel boxes** with semi-transparent fill showing consolidation zones
- **Colored entry zones** labeled "LONG ZONE ▲" and "SHORT ZONE ▼"
- **Entry signal arrows** below/above bars marking long/short entries
- **Active TP/SL lines** with emoji labels (⊕ Entry, 🎯 TP, 🛑 SL)
- **Info table** showing position status, channel state, last signal, entry/TP/SL prices, and ATR status
## HOW TO USE:
### For 1-3 Minute Scalping (NQ/ES):
- ATR Timeframe: "1" (1-minute)
- ATR Min Value: 10.0 (for NQ), adjust per instrument
- Entry Zone %: 20-25%
- TP Method: Fixed Points, 20-40 ticks
- SL Offset: 5-10 ticks
- Cooldown: 2-3 bars
- Position Size: 1-2 contracts
### For 5-15 Minute Day Trading:
- ATR Timeframe: "5" or match chart
- ATR Min Value: Adjust to instrument (test 8-15 for NQ)
- Entry Zone %: 20-30%
- TP Method: % of Channel, 40-60%
- SL Offset: 5-10 ticks
- Cooldown: 3-5 bars
- Position Size: Fixed contracts or 5-10% equity
### For 30-60 Minute Swing Scalping:
- ATR Timeframe: "15" or "30"
- ATR Min Value: Lower threshold for broader market
- Entry Zone %: 25-35%
- TP Method: % of Channel, 50-70%
- SL Offset: 10-15 ticks
- Cooldown: 5+ bars or disable
- Position Size: % of equity recommended
## BACKTEST CONSIDERATIONS:
- Strategy performs best in ranging, mean-reverting markets
- Strong trending markets produce more stop losses as price breaks channels
- ATR filter significantly reduces trade count but improves quality during low volatility
- Cooldown period trades signal quantity for signal quality
- Commission and slippage materially impact sub-5-minute timeframe performance
- Shorter timeframes require tighter entry zones (15-20%) to catch quick reversions
- % of Channel TP adapts better to varying channel sizes than fixed points
- Fixed contract sizing recommended for consistent risk per trade in futures
**Backtesting Parameters Used**: This strategy was developed and tested using realistic commission and slippage values to provide accurate performance expectations. Recommended settings: Commission of $1.40 per side (typical for NQ futures through discount brokers), slippage of 2 ticks to account for execution delays on fast-moving scalp entries. These values reflect real-world trading costs that active scalpers will encounter. Backtest results without proper cost simulation will significantly overstate profitability.
## COMPATIBLE MARKETS:
Works on any instrument with price data including stock indices (NQ, ES, YM, RTY), individual stocks, forex pairs (EUR/USD, GBP/USD), cryptocurrency (BTC, ETH), and commodities. Volume-based features require data feed with volume information but are optional for core functionality.
## KNOWN LIMITATIONS:
- Immediate touch entry can fire multiple times in choppy zones without adequate cooldown
- Channel deletion at 10-tick breaks may be too aggressive or lenient depending on instrument tick size
- ATR filter from lower timeframes requires higher-tier TradingView subscription (request.security limitation)
- Mean reversion logic fails in strong breakout scenarios leading to stop loss hits
- Position sizing via % of equity or cash amount calculates based on close price, may differ from actual fill price
- No partial closing capability - full position exits at TP or SL only
- Strategy does not account for gap openings or overnight holds
## RISK DISCLOSURE:
Trading involves substantial risk of loss. Past performance does not guarantee future results. This strategy is for educational purposes and backtesting only. Mean reversion strategies can experience extended drawdowns during trending markets. Stop losses may not fill at intended levels during extreme volatility or gaps. Thoroughly test on historical data and paper trade before risking real capital. Use appropriate position sizing and never risk more than you can afford to lose. Consider consulting a licensed financial advisor before making trading decisions. Automated trading systems can malfunction - monitor all live positions actively.
## ACKNOWLEDGMENT & CREDITS:
This strategy is built upon the channel detection methodology created by **AlgoAlpha** in the "Smart Money Breakout Channels" indicator. Full credit and appreciation to AlgoAlpha for pioneering the normalized volatility approach to identifying consolidation patterns. The core channel formation logic using normalized price standard deviation is AlgoAlpha's original contribution to the TradingView community.
Enhancements to the original concept include: mean reversion entry logic (vs breakout), immediate touch-based signals, multi-timeframe ATR volatility filtering, flexible position sizing (fixed/percentage/cash), cooldown period filtering, dual TP methods (fixed points vs channel percentage), automated strategy execution with exit management, and real-time position monitoring table.
Complexity v3.2Complex Trend Analyzer v6.1 v3.2
Advanced multi-indicator trend analysis with dynamic timeframe adaptation!
Overview:
This sophisticated indicator combines multiple technical analysis tools for comprehensive trend analysis. It features EMA crossovers, RSI momentum, MACD signals, Bollinger Bands, volume analysis, divergence detection, and multi-timeframe analysis with dynamic parameter adaptation based on market volatility.
Key Features:
✅ Multi-Indicator Analysis - EMA, RSI, MACD, Bollinger Bands, Volume, ATR
✅ Divergence Detection - Bullish and bearish divergence with strength calculation
✅ Dynamic Timeframe Adaptation - Parameters adjust automatically based on timeframe
✅ Trend Tracking - Complete trend lifecycle with BUY/SELL/END signals
✅ Multi-Timeframe Analysis - M5, M15, M30 trend comparison
✅ Risk Management - Volatility filtering and warning system
✅ Visual Clarity - Clean labels, trend lines, and information table
How It Works:
The indicator uses a weighted scoring system:
• EMA (2.0) - Primary trend direction
• RSI (1.5) - Momentum confirmation
• MACD (1.5) - Trend momentum
• Bollinger Bands (1.0) - Volatility context
• Volume (1.0) - Volume confirmation
• Price Action (0.5 each) - Higher highs/lows
Signal Logic:
• BUY - Weighted score > threshold + filters passed
• SELL - Weighted score > threshold + filters passed
• END - Trend reversal conditions met
Visual Elements:
• 🟢 BUY - Green label with trend tracking
• 🔴 SELL - Red label with trend tracking
• ⚫ END - Gray label marking trend end
• × BUY - Green crosses for bullish divergence
• × SELL - Red crosses for bearish divergence
• ⚠️ - Warning signals for trend reversals
Information Table:
Real-time display showing:
• ATR volatility with signal (HIGH/MED/LOW/NORMAL VOL)
• Divergence status with strength percentage
• BUY/SELL signal count and overall signal
• Multi-Timeframe analysis (M5, M15, M30)
• Current trend with strength percentage
• Detailed trend strength analysis
Dynamic Adaptation:
Parameters automatically adjust based on timeframe:
• M1 - Fastest reaction (1.5-7.5 bars)
• M3 - Quick response (2-10 bars)
• M5 - Standard setting (3-15 bars)
• M15 - Slower, more reliable (4-20 bars)
Settings:
• EMA - Fast (9), Slow (21), Trend (50)
• RSI - Length (14), Overbought (70), Oversold (30)
• MACD - Fast (12), Slow (26), Signal (9)
• Bollinger Bands - Length (20), Multiplier (2.0)
• ATR - Length (14) for volatility measurement
• Volume Threshold - 1.5x average volume
Best Practices:
🎯 Works best in trending markets
📊 Use as overlay on main chart
⚡ Combine with price action analysis
🛡️ Always use proper risk management
🔍 Watch for divergence signals
⚠️ Pay attention to warning signals
Pro Tips:
• Green background = Strong uptrend, Red background = Strong downtrend
• Orange background = Risk zone (high volatility/RSI extremes)
• × marks indicate divergence opportunities
• ⚠️ warnings signal potential trend reversals
• Use multi-timeframe analysis for confirmation
• Monitor the information table for comprehensive market view
Alerts:
• BUY Alert - "BUY signal detected"
• SELL Alert - "SELL signal detected"
• Divergence Alert - "Divergence detected"
• Warning Alert - "Trend warning"
Version 3.2 Improvements:
• Enhanced multi-indicator analysis
• Improved divergence detection with strength calculation
• Advanced dynamic timeframe adaptation
• Comprehensive risk management system
• Professional visual presentation
• Weighted scoring system for better accuracy
Created with ❤️ for the trading community
This indicator is free to use for both commercial and non-commercial purposes.
cd_Quarterly_cycles_SSMT_TPD_CxGeneral
This indicator is designed in line with the Quarterly Theory to display each cycle on the chart, either boxed and/or in candlestick form.
Additionally, it performs inter-cycle divergence analysis ( SSMT ) with the correlated symbol, Terminus Price Divergence ( TPD ), Precision Swing Point ( PSP ) analysis, and potential Power of Three ( PO3 ) analysis.
Special thanks to @HandlesHandled for his great indicator, which I used while preparing the cycles content.
Details & Usage:
Optional cycles available: Weekly, Daily, 90m, and Micro cycles.
Displaying/removing cycles can be controlled from the menu (cycles / candles / labels).
All selected cycles can be shown, or you can limit the number of displayed cycles (min: 2, max: 4).
The summary table can be toggled on/off and repositioned.
What’s in the summary table?
• Below the header, the correlated symbol used in the analysis is displayed (e.g., SSMT → US500).
• If available, live and previous bar results of the SSMT analysis are shown.
• Under the PSP & TPD section, results are displayed when conditions are met.
• Under Alerts, the real-time status of conditions defined in the menu is shown.
• Under Potential AMD, possible PO3 analysis results are displayed.
Analysis & Symbol Selection:
To run analyses, a correlated symbol must first be defined with the main symbol.
Default pairs are preloaded (see below), but users should adjust them according to their exchange and instruments.
If no correlated pair is defined, cycles are displayed only as boxes/candles.
Once defined pairs are opened on the chart, analyses load automatically.
Pairs listed on the same row in the menu are automatically linked, so no need to re-enter them across rows.
SSMT Analysis:
Based on the chart’s timeframe, divergences are searched across Weekly, Daily, 90m, and Micro cycles.
The code will not produce results for smaller cycles than the current timeframe.
(Example: On H1, Micro cycles will not be displayed.)
Results are obtained by comparing the highs and lows of consecutive cycles in the same period.
If one pair makes a new high/low while the other does not, this divergence is added to SSMT results.
The difference from classic SMT is that cycles are used instead of bars.
PSP & TPD Analysis:
A correlated symbol must be defined.
For PSP, timeframe options are added to the menu.
Users toggle timeframes on/off by checking/unchecking boxes.
In selected timeframes, PSP & TPD analysis is performed.
• PSP: If candlesticks differ in color (bullish/bearish) between symbols and the bar is at a high/low of the timeframe (and higher/lower than the bars before/after it), it is identified as a PSP. Divergences between pairs are interpreted as potential reversal signals.
• TPD: Once a PSP occurs, the closing price of the previous bar and the opening price of the next bar are compared. If one symbol shows continuation while the other does not, it is marked as a divergence.
Example:
Let’s assume Pair 1 and Pair 2 are selected in the menu with the H4 timeframe, and our cycle is Weekly (Box).
For Pair 1, the H4 candle at the Weekly high level:
• Is positioned at the Weekly high,
• Its high is above both the previous and the next candle,
• It closed bearish (open > close).
For Pair 2, the same H4 candle closed bullish (close > open).
→ PSP conditions are met.
For TPD, we now check the candles before and after this PSP (H4) candle on both pairs.
Comparing the previous candle’s close with the next candle’s open, we see that:
• In Pair 1, the next open is lower than the previous close,
• In Pair 2, the next open is higher than the previous close.
Pair 1 → close > open
Pair 2 → close < open
Since they are not aligned in the same direction, this is interpreted as a divergence — a potential reversal signal.
While TPD results are displayed in the summary table, whenever the conditions are met in the selected timeframes, the signals are also plotted directly on the chart. (🚦, X)
• Higher timeframe TPD example:
• Current timeframe TPD example:
Alerts:
The indicator can be conditioned based on aligned timeframes defined within the concept.
Example (assuming random active rows in the screenshot):
• Weekly Bullish SSMT → Tf2 (menu-selected) Bullish TPD → Daily Bullish SSMT.
Selecting “none” in the menu means that condition is not required.
When an alert is triggered, it will be displayed in the corresponding row of the table.
• Example with only condition 3 enabled:
Potential PO3 Analysis:
According to Quarterly Theory, price moves in cycles, and the same structures are assumed to continue in smaller timeframes.
From classical PO3 knowledge: before the main move, price first manipulates in the opposite direction to trap buyers/sellers, then makes its true move.
The cyclical sequence is:
(A)ccumulation → (M)anipulation → (D)istribution → (R)eversal / Continuation.
Within cycle candles, the first letter of each phase is displayed.
So how does the analysis work?
If the active cycle is in (M)anipulation or (D)istribution phase, and it sweeps the previous cycle’s high or low but then pulls back inside, this is flagged in the summary table as a possible PO3 signal.
In other words, it reflects the alignment of theoretical sequence with real-time price action.
Confluence with SSMT and TPD conditions further strengthens the expectation.
Final Note:
No single marking or alert carries meaning on its own — it must always be evaluated in the context of your concept knowledge.
Instead of trading purely on expectations, align bias + trend + entry confirmations to improve your success rate.
Feedback and suggestions are welcome.
Happy trading!
KeyLevel - AOCKeyLevel - AOC
✨ Features📈 Session Levels: Tracks high, low, and open prices for Asian, London, and New York sessions.📅 Multi-Timeframe Levels: Plots previous day, week, month, quarter, and yearly open/high/low levels.⚙️ Preset Modes: Choose Scalp, Intraday, or Swing presets for tailored level displays.🎨 Customizable Visuals: Adjust colors, line styles, and label abbreviations for clarity.🖼️ Legend Table: Displays a color-coded legend for quick reference to session and period levels.🔧 Flexible Settings: Enable/disable specific sessions or levels and customize UTC offsets.
🛠️ How to Use
Add to Chart: Apply the "KeyLevel - AOC" indicator on TradingView.
Configure Inputs:
Preset: Select Scalp, Intraday, or Swing, or use custom settings.
Session Levels: Toggle Asian, London, NY sessions and their open/high/low lines.
Period Levels: Enable/disable previous day, week, month, quarter, or yearly levels.
Visuals: Adjust colors, line widths, and label abbreviations.
Legend: Show/hide the legend table for level identification.
Analyze: Monitor key levels for support/resistance and session-based price action.
Track Trends: Use levels to identify breakouts, reversals, or consolidation zones.
🎯 Why Use It?
Dynamic Levels: Tracks critical price levels across multiple timeframes for comprehensive analysis.
Session Focus: Highlights key session price points for intraday trading strategies.
Customizable: Tailor displayed levels and visuals to match your trading style.
User-Friendly: Clear lines, labels, and legend table simplify price level tracking.
📝 Notes
Ensure timeframe compatibility (e.g., avoid daily charts for session levels).
Use M5 or higher timeframes for accurate session tracking; some levels disabled on M5.
Combine with indicators like RSI or MACD for enhanced trading signals.
Adjust UTC offset if session times misalign with your broker’s timezone.
ORB Breakout Traffic Signal (5/15/30)ORB Breakout Traffic Signal (5/15/30)
This indicator visualizes Opening Range Breakouts (ORB) for the first 5, 15, and 30 minutes of the US regular trading session (09:30–16:00 ET).
It provides a compact, easy-to-read traffic signal table on your chart to show whether price is breaking out, breaking down, or consolidating inside the range.
🔑 Features
Auto-anchors at 09:30 ET (converted to your local time automatically).
Tracks ORB High/Low for:
5-minute window (09:30–09:34)
15-minute window (09:30–09:44)
30-minute window (09:30–09:59)
Displays results in a compact table:
↑ (green) → price has broken above the ORB high
↓ (red) → price has broken below the ORB low
• (gray) → price remains inside the ORB range (optional; can be disabled)
Customizable:
Toggle which ORBs to show (5m, 15m, 30m)
Choose table position (top/bottom left/right)
Adjustable text size
Option to plot the ORB High/Low lines on your chart
📌 Usage
Designed for intraday traders watching US equities/ETFs/futures.
Works best on 1-minute or 5-minute charts with Extended Hours turned OFF (so the session starts exactly at 09:30 ET).
Helps you quickly spot early breakouts (5m), mid-session trends (15m), or confirmed directional moves (30m).
⚠️ Notes
Signals only update during the RTH session
Outside market hours, the last locked ORB and signal remain displayed until the next open.
This tool is for analysis/visualization only; not a buy/sell signal. Always combine with your own trading strategy and risk management.
👉 Perfect for traders who want a quick visual confirmation of whether price is breaking out of the opening range or stuck inside it.
Auto-Anchored MA with Deviation BandsAuto-Anchored MA with Deviation Bands
✨ Features
📈 Auto-Anchored MA: Calculates moving averages (EMA, SMA, EWMA, WMA, VWAP, TEMA) anchored to user-defined periods (Hour, Day, Week, etc.).📏 Deviation Bands: Plots upper/lower bands using Percentage or Standard Deviation modes for volatility analysis.⚙️ Customizable Timeframes: Choose anchor periods from Hour to Year for flexible trend analysis.🎨 Visuals: Displays MA and bands with gradient fills, customizable colors, and adjustable display bars.⏱️ Countdown Table: Shows bars since the last anchor for easy tracking.🛠️ Smoothing: Applies smoothing to bands for cleaner visuals.
🛠️ How to Use
Add to Chart: Apply the indicator on TradingView.
Configure Inputs:
Anchor Settings: Select anchor period (e.g., Day, Week).
MA Settings: Choose MA type (e.g., VWAP, TEMA).
Deviation Settings: Set deviation mode (Percentage/Std Dev) and multipliers.
Display Settings: Adjust bars to display, colors, and gradient fill.
Analyze: View MA, deviation bands, and countdown table on the chart.
Track Trends: Use bands as dynamic support/resistance and monitor anchor resets.
🎯 Why Use It?
Dynamic Analysis: Auto-anchors MA to key timeframes for adaptive trend tracking.
Volatility Insight: Deviation bands highlight potential breakouts or reversals.
Customizable: Tailor MA type, timeframe, and visuals to your trading style.
User-Friendly: Clear visuals and countdown table simplify analysis.
📝 Notes
Ensure sufficient bars for accurate MA and deviation calculations.
Gradient fill enhances readability but can be disabled for simplicity.
Best used with complementary indicators like RSI or Bollinger Bands for robust strategies.
Happy trading! 🚀📈






















